#include "bsp_gpio.h"

void MX_GPIO_Init(void)
{
		rcu_periph_clock_enable(RCU_GPIOA);
		rcu_periph_clock_enable(RCU_GPIOB);
		rcu_periph_clock_enable(RCU_GPIOC);
		rcu_periph_clock_enable(RCU_GPIOD);
    rcu_periph_clock_enable(RCU_GPIOE);	
/****************************IO输出***********************************************/	
//增压泵 冲洗阀 源水进水阀 纯水箱进水阀 纯水箱出水阀 热罐进水阀 热罐出水阀
gpio_init(BOOST_PUMP_CTRL_GPIO_Port, 			GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	BOOST_PUMP_CTRL_Pin);//增压泵
gpio_init(WASH_CTRL_GPIO_Port, 					  GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	WASH_CTRL_Pin);//冲洗阀
gpio_init(SOURCE_IN_CTRL_GPIO_Port,				GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	SOURCE_IN_CTRL_Pin);//源水进水
gpio_init(PURE_TANK_IN_CTRL_GPIO_Port, 		GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	PURE_TANK_IN_CTRL_Pin);//纯水箱进水控制阀
gpio_init(PURE_TANK_OUT_CTRL_GPIO_Port, 	GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	PURE_TANK_OUT_CTRL_Pin);//纯水箱出水控制阀
gpio_init(HEAT_TANK_IN_CTRL_GPIO_Port, 		GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	HEAT_TANK_IN_CTRL_Pin);//热罐进水控制阀
gpio_init(HEAT_TANK_OUT_CTRL_GPIO_Port, 	GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	HEAT_TANK_OUT_CTRL_Pin);//热罐出水控制阀

//UV灯  热罐加热使能  CAT1复位  蜂鸣器使能
gpio_init(UV_LIGHT_CTRL_GPIO_Port, 				GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	UV_LIGHT_CTRL_Pin);////UV控制
gpio_init(HEAT_EN_CTRL_GPIO_Port, 			  GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	HEAT_EN_CTRL_Pin);//热水罐加热使能控制
gpio_init(CAT1_PWR_KEY_CTRL_GPIO_Port, 		GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	CAT1_PWR_KEY_CTRL_Pin);//CAT1复位
gpio_init(BUZZER_EN_CTRL_GPIO_Port, 		  GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	BUZZER_EN_CTRL_Pin);////蜂鸣器使能

//漏水TDS 源水TDS 纯水TDS 水箱溢水位 
gpio_init(LEAK_TDS_FWD_GPIO_Port, 				GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	LEAK_TDS_FWD_Pin);//漏水TDS正
gpio_init(LEAK_TDS_REV_GPIO_Port, 			  GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	LEAK_TDS_REV_Pin);//漏水TDS反

gpio_init(SOURCE_TDS_FWD_GPIO_Port, 			GPIO_MODE_OUT_PP, 	GPIO_OSPEED_2MHZ,	SOURCE_TDS_FWD_Pin);//源水TDS正
gpio_init(SOURCE_TDS_REV_GPIO_Port, 		  GPIO_MODE_OUT_PP, 	GPIO_OSPEED_2MHZ,	SOURCE_TDS_REV_Pin);//源水TDS反

gpio_init(PURE_TDS_FWD_GPIO_Port, 				GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	PURE_TDS_FWD_Pin);//纯水TDS正
gpio_init(PURE_TDS_REV_GPIO_Port, 		  	GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	PURE_TDS_REV_Pin);//纯水TDS反

gpio_init(OVER_TDS_FWD_GPIO_Port, 				GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	OVER_TDS_FWD_Pin);//水箱溢水位TDS正
gpio_init(OVER_TDS_REV_GPIO_Port, 		  	GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	OVER_TDS_REV_Pin);//水箱溢水位TDS反

//热罐高中低水位

gpio_init(HEAT_L_TDS_FWD_GPIO_Port, 			GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	HEAT_L_TDS_FWD_Pin);//热罐低水位正
gpio_init(HEAT_M_TDS_FWD_GPIO_Port, 		  GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	HEAT_M_TDS_FWD_Pin);//热罐中水位正

gpio_init(HEAT_H_TDS_FWD_GPIO_Port, 			GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	HEAT_H_TDS_FWD_Pin);//热罐高水位正
gpio_init(HEAT_COM_TDS_FWD_GPIO_Port, 		GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	HEAT_COM_TDS_FWD_Pin);//热罐公共端

//模拟IIC  EEPROM  TM1650  气压计	
gpio_init(EEPROM_WR_GPIO_Port, 						GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	EEPROM_WR_Pin);//EEPROM
gpio_init(EEPROM_SCL_GPIO_Port, 					GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	EEPROM_SCL_Pin);//EEPROM
gpio_init(EEPROM_SDA_GPIO_Port, 					GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	EEPROM_SDA_Pin);//EEPROM
 
gpio_init(TM1650_SCL_GPIO_Port, 					GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	TM1650_SCL_Pin);//TM1650
gpio_init(TM1650_SDA_GPIO_Port, 					GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	TM1650_SDA_Pin);//TM1650

gpio_init(IIC_AIR_PRE_SCL_GPIO_Port, 			GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	IIC_AIR_PRE_SCL_Pin);//气压计
gpio_init(IIC_AIR_PRE_SDA_GPIO_Port, 			GPIO_MODE_OUT_PP, 	GPIO_OSPEED_50MHZ,	IIC_AIR_PRE_SDA_Pin);//气压计

/****************************IO输入***********************************************/
gpio_init(FZ_H_GPIO_Port, 								GPIO_MODE_IPU, 			GPIO_OSPEED_50MHZ,	FZ_H_Pin);//纯水箱浮子高 
gpio_init(FZ_M_GPIO_Port, 								GPIO_MODE_IPU, 			GPIO_OSPEED_50MHZ,	FZ_M_Pin);//纯水箱浮子中 
gpio_init(FZ_L_GPIO_Port, 								GPIO_MODE_IPU, 			GPIO_OSPEED_50MHZ,	FZ_L_Pin);//纯水箱浮子低 

gpio_init(SW_H_GPIO_Port, 								GPIO_MODE_IPU, 			GPIO_OSPEED_50MHZ,	SW_H_Pin);//高压开关  
gpio_init(SW_L_GPIO_Port, 								GPIO_MODE_IPU, 			GPIO_OSPEED_50MHZ,	SW_L_Pin);//低压开关 


gpio_init(TEST1_GPIO_Port, 								GPIO_MODE_IPU, 			GPIO_OSPEED_50MHZ,	TEST1_Pin);//测试点1 
gpio_init(TEST2_GPIO_Port, 								GPIO_MODE_IPU, 			GPIO_OSPEED_50MHZ,	TEST2_Pin);//测试点2 



////	//零点检测 PB8
////	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource8);
////	extiInitType.EXTI_Line = ZERO_Pin;
////	EXTI_Init(&extiInitType);

////	//流量计 PC13
////	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOC, EXTI_PinSource13);
////	extiInitType.EXTI_Line = FLOW_HALL_Pin;
////	EXTI_Init(&extiInitType);

}
